[XEN] Consolidate multiple defintions of ELFNOTE_* accessor macros
authorIan Campbell <ian.campbell@xensource.com>
Mon, 22 Jan 2007 15:40:12 +0000 (15:40 +0000)
committerIan Campbell <ian.campbell@xensource.com>
Mon, 22 Jan 2007 15:40:12 +0000 (15:40 +0000)
Signed-off-by: Ian Campbell <ian.campbell@xensource.com>
xen/common/elf.c
xen/common/kexec.c
xen/include/xen/elf.h

index 877c70420155943690382bf37eb297d389733011..355aecf64e590d3f57938c6954d48a64ab09ea3f 100644 (file)
@@ -99,12 +99,6 @@ static unsigned long long xen_guest_numeric(struct domain_setup_info *dsi,
     return value;
 }
 
-/*
- * Interface to the Xen ELF notes.
- */
-#define ELFNOTE_NAME(_n_)   ((const char*)(_n_) + sizeof(*(_n_)))
-#define ELFNOTE_DESC(_n_)   (ELFNOTE_NAME(_n_) + (((_n_)->namesz+3)&~3))
-#define ELFNOTE_NEXT(_n_)   (ELFNOTE_DESC(_n_) + (((_n_)->descsz+3)&~3))
 
 static int is_xen_elfnote_section(const char *image, const Elf_Shdr *shdr)
 {
@@ -115,7 +109,7 @@ static int is_xen_elfnote_section(const char *image, const Elf_Shdr *shdr)
 
     for ( note = (const Elf_Note *)(image + shdr->sh_offset);
           note < (const Elf_Note *)(image + shdr->sh_offset + shdr->sh_size);
-          note = (const Elf_Note *)ELFNOTE_NEXT(note) )
+          note = ELFNOTE_NEXT(note) )
     {
         if ( !strncmp(ELFNOTE_NAME(note), "Xen", 4) )
             return 1;
@@ -134,7 +128,7 @@ static const Elf_Note *xen_elfnote_lookup(
 
     for ( note = (const Elf_Note *)dsi->__elfnote_section;
           note < (const Elf_Note *)dsi->__elfnote_section_end;
-          note = (const Elf_Note *)ELFNOTE_NEXT(note) )
+          note = ELFNOTE_NEXT(note) )
     {
         if ( strncmp(ELFNOTE_NAME(note), "Xen", 4) )
             continue;
index c165745891faf7560249c73300930bf972c0325d..5727cdcaa86e2972a6b74f81eea272fa08d15a1c 100644 (file)
 
 typedef long ret_t;
 
-#define ELFNOTE_ALIGN(_n_) (((_n_)+3)&~3)
-#define ELFNOTE_NAME(_n_) ((char*)(_n_) + sizeof(*(_n_)))
-#define ELFNOTE_DESC(_n_) (ELFNOTE_NAME(_n_) + ELFNOTE_ALIGN((_n_)->namesz))
-#define ELFNOTE_NEXT(_n_) ((Elf_Note *)(ELFNOTE_DESC(_n_) + ELFNOTE_ALIGN((_n_)->descsz)))
-
 static DEFINE_PER_CPU(void *, crash_notes);
 
 static Elf_Note *xen_crash_note;
index 131276a4d6432e04550d06d53190d96b9f569ea5..f8508661e6553a089b0dfe794f963d3b14a66e05 100644 (file)
@@ -517,6 +517,11 @@ typedef struct {
 #define AuxInfo                Aux64Info
 #endif
 
+#define ELFNOTE_ALIGN(_n_) (((_n_)+3)&~3)
+#define ELFNOTE_NAME(_n_) ((char*)(_n_) + sizeof(*(_n_)))
+#define ELFNOTE_DESC(_n_) (ELFNOTE_NAME(_n_) + ELFNOTE_ALIGN((_n_)->namesz))
+#define ELFNOTE_NEXT(_n_) ((Elf_Note *)(ELFNOTE_DESC(_n_) + ELFNOTE_ALIGN((_n_)->descsz)))
+
 struct domain_setup_info;
 extern int loadelfimage(struct domain_setup_info *);
 extern int parseelfimage(struct domain_setup_info *);